IT environments are becoming increasingly complex and dynamic. Changes are constantly introduced responding to changing business needs such as improving services or reducing costs, as well as solving existing incidents or problems. A typical enterprise deals with hundreds of thousands of changes every year. For these reasons, a disciplined process is needed to ensure that required changes are carried out in a planned and authorized manner while minimizing the impact and risk of those changes upon service quality.
There are several activities involved in managing an individual change. It starts by creating and submitting a request for change (RFC). The RFC gets reviewed, assessed, and eventually authorized or rejected. Once the RFC is authorized, plans are created including implementation plans, test plans and back out plans in case the change fails. Then, the change is built, tested and implemented. Finally, the change is reviewed to ensure that the change has the desired effect and met the required objectives.
Following the Information Technology Infrastructure Library (ITIL) set of best practices, during the lifecycle of a change, information is collected and knowledge is created and stored in a configuration management database (CMDB). A CMDB contains details of organization elements referred to as Configuration Items (CIs). CIs are used in the provision and management of IT services. A CMDB contains information about all changes that have been performed on the organization elements. For example, the CMDB includes the plans for implementing those changes, the risks involved, any back-up plans, the resources used, the impacted applications, the incidents triggered by implementing those changes, whether or not a change has been successfully implemented, the reason or reasons why a change failed, and so on.
Since knowledge is created during the lifetime of a change, it is of paramount importance to the success of the business to re-use that knowledge for future changes. In fact, those who do not learn from past experiences are doomed to repeat the same mistakes and also would not bear the fruit of the ones that were successful. What if a change manager is presented with the outcomes of the most similar changes? He or she will be able to better assess the risk and impact associated with the change at hand and consequently take the appropriate course of action. What if a change planner is presented with the plans of the most similar changes? He or show will be able to learn from those plans and produce plans in a shorter time period with a lower risk of failing. What if a change reviewer is presented with applications that were disrupted by past changes similar to a recently completed change request? He or she will be able to identify it as a potential root cause to newly created incidents.
In order to provide such past outcomes, plans and disrupted applications to a change review, one needs to be able to, given a change, find the most similar past changes and display them. The information contained in a change record includes various attribute types, ranging from complex types such as text documents or graph representations, to basic types such as strings, integers and booleans. Conventional techniques exist for computing similarities of such attributes, but such conventional techniques suffer from inadequate similarity computations.
There is a desire, as determined by the inventors of this application, to come up with a solution that identifies and learns similarity between objects combining different types of attributes, to thereby provide an enhanced decision support tool for IT.